查看原文
其他

为什么在中国电子工程师不如搞软件的?

来源:知乎整理 大鱼机器人 2021-01-31

知乎用户:时光行者


做了9年硬件电路设计,5年智能手机,4年医疗器械,看到这个问题,心情很复杂,自己喜爱的工作居然无奈的发展到了这个窘境。

当初选择硬件是因为不想日复一日的坐在屏幕前面敲代码到天亮,硬件电路设计工作中的元素要丰富一些,各种仪器,各种元器件,实验室,工厂,电脑前面画图坐个台,供应商来了再接个客,个人觉的要比枯燥写代码有趣很多。当时硬件还是产品的主要卖点,软硬件算势均力敌。

但到了现在,依靠国内庞大的用户群,中国站在了全球互联网发展的前列,行业发展速度快,相关人才必定炙手可热,传统制造业与之相比,其实无论软件硬件,跟互联网行业都要差一个档次。问题是传统制造业内部,软件的发展也也要好于硬件,这是为什么呢?

个人体会这种情况在不同行业情况也不同。消费类电子因为量大,同质化,IC厂家会针对性的提供完善的,集成的芯片解决方案,在早期的智能手机中应用处理器,基带modem,射频单元,音频单元和很多其他功能模块都是分立的,但现在满眼都是集成了各个通信制式和功能模块的单芯片解决方案,设计在这时其实只是应用,别犯错,整机射频音频EMC性能把住关就OK了,当然肯定也没这么简单,但不可否认这样给硬件设计留出的发挥空间少之又少。而硬件同质化之后沦为后台,产品体现差别的是软件,攻城拔寨创收的也是软件,舞台大了自然在公司内更加受重视,待遇和发展自然也好于硬件,但跟互联网和传统行业的差别比,这个差别相对小一些。


另外一点很尴尬的是,硬件的博大精深,体现硬件设计水平的一些技术,在消费电子中慢慢变的没必要了,开始我们也研究对标诺基亚,想把质量做到最好,但后来发现手机大家玩一两年就扔了,根本不需要你设计的这么精细,高层领导还嫌增加成本,浪费工时。手机都这样,其他消费类电子更不必说,可以看出这个行业市场对硬件技术能力,需求并不高,此处深深的叹口气。


在大型设备比如工控和高端医疗器械领域,硬件的处境就好很多,但对知识的要求也会高一些,不光数字电路和嵌入式底层软件,模拟电路,大功率,高可靠性设计的知识也是必须的。没有现成的芯片解决方案;没有现成设计可供参考,系统的庞大,很长的生命周期,可靠性设计相关的需求(出错可能出人命),都决定了硬件有更大的空间去发挥。深度的硬件技术也有了用武之地,我所在的德国公司,干了20年以上的大有人在。当时读了项目组里一个德国硬件系统工程师写的可靠性系统设计文档,自认为不笨,但沉下心读了三遍到现在还没完全搞懂,缜密严谨的逻辑很让人叹服,跟他讲他哈哈大笑,说这个德国的大部门里也就两个人能搞定,这也就是德国没法被中国山寨的技术门槛。


在这种复杂度下,硬件工程师的受重视程度和待遇跟软件相当,我也跟德国人求证过,在德国软硬件待遇也处于同一水平。


我一个豪无文采的工程师写答案真心吃力啊,扯了这么多,都不知道扯到哪条街去了,总结一下吧:


1. 互联网正在爆发式增长,风口上连猪都会飞,我们这些腿脚不好使的追不上风口,飞不起来就脚踏实地吧,行业有起伏,说不定哪天你吃饱正睡呢,就被卷上天了,这个时代,太多不可能成为可能了(诺基亚,呵呵),那天之前,起码自我修炼,把体重减轻,方便被卷。

2. 发(gong)展(zi)好坏由市场需求决定,国内企业从事高端制造业的较少,对硬件技术水平的需求不高,自然不愿意付那么高的薪水。


如果你还没毕业,还是拥抱互联网去吧。


如果你已经上了硬件的贼船想走技术路线,个人觉得自己选择的路,就坚持走到底。


如果你上了硬件的贼船还不想干技术了,可以考虑转项目经理,硬件跟供应链和其他部门的接触挺多,皮扯多了专业扯皮也没啥问题,职业前景也不错。


衷心希望各位硬件行业的同仁们处境能越来越好……



知乎用户:吴笛

首先还是看数据:这是根据招聘网站生成的工资趋势图。蓝色是美国电子工程师平均工资,橙色是软件工程师,绿色是系统工程师。


显然电子工程师的工资增长不仅没有跟上软件工程师的增长速度,甚至还有相当下降。

二月份最新的数据:


三种职业的平均工资,还是软件工程师最高。

工资是雇主为员工出的价格。在市场环境下,决定价格的是供求关系。所以电子工程师的工资(价格)下降,说明电子工程师供过于求。事实上,大量传统上由电子工程完成的工作,正在变成软件工程的工作。硬件变成了软件。为什么呢?

首先是硬件处理能力过剩。

在远古时代(其实不是很远,15年前),IT行业的硬件初创企业相当普遍。比如,1997年,硅谷的创业传奇华人谢青 (Ken Xie)在车库里创办了NetScreen,一个专注于防火墙的网络安全公司。NetScreen后来被Juniper以40亿美元收购。那个时代,包括NetScreen,大部分硬件产品都是以ASIC和FPGA这类高度定制的芯片为核心的。2000年,谢青离开NetScreen以后,又创立了Fortinet,目前市值约38亿美元,在创立初期时的产品也是以ASIC为核心。

对了,谢青从1987年毕业于清华电子工程系。

之所以使用ASIC,当然是因为ASIC这类专用芯片的可定制性,能够专门为某类应用进行优化,实现更高的性能。在性能稀缺的时代,这样的定制是完全不可避免的。谢青的第一家公司,SIS,最终没有获得成功,最大的原因就是当时采用了软件解决方案,而当时的通用处理器能力不足以应对防火墙所需的处理能力。谢青认识到这个问题,自己设计了NetScreen需要的ASIC,仅仅三年就被Juniper收购。

ASIC性能优秀,但缺陷是生产规模很小,并且需要单独设计,设计费用动辄上千万美元,因此每片芯片的平均价格非常高。

和ASIC相对的是相对廉价、大规模生产的通用芯片 (General purpose chip or merchant chip),比如英特尔的x86,Broadcom的交换芯片,还有各种基于ARM的SoC芯片。

在2007年前,这些通用芯片的性能都在按照每18个月一倍的摩尔定律高速提升。突然有一天,人们发现很多时候芯片的运算能力似乎够了,市场对更高性能处理器的胃口突然变差。随之而来的,是供应商在性能方面的不思进取:过去几年英特尔的主流芯片运算性能提升几乎处于停滞状态:

这是英特尔2013年三款主流处理器,其中i7-2600K 发布于2011年1月,i7-3770K 发布于2012年4月,i7-4770K 发布于2013年6月。在这个档次上,过去36个月的处理器性能只不过增加了16%。

虽然2020年的现在已然i9,并且摩尔定律都快失效了,在面对即使是多年前的i7-2600K拿到现在用,其实也是可以用的:


结论呢,是很多时候,人们根本不需要那么强的硬件能力。

硬件能力过剩的结果之一就是通用硬件取代专用硬件,使用软件实现功能。

时间到了2000这个十年的中后期,慢慢地人们发现,便宜的、可以大规模生产的芯片的性能已经开始够用了,那么为什么要冒险投资上千万美元,设计一个还不知道能不能卖出去的芯片呢?实际上,过去几年,桌面系统和服务器系统的运算能力已经进入平台期。

廉价处理能力过剩的结果之一,就是许多原来需要用专门硬件来实现的功能现在只需要软件加通用芯片就能办到了。现在最热门的软件定义存储 (Software Defined Storage, SDN),软件定义网络 (Software Defined Networking, SDN),软件定义数据中心 (Software Defined Datacenter, SDDC),都反映了这一趋势,以后再专门撰文分析。

相对于专用硬件,软件 + 通用硬件有许多优势:

1. 费用:相对于专用ASIC动辄几百万上千万美元的开发费用,一个软件 + 通用硬件平台的前期开发费用也许只要几分之一甚至几十分之一。后期通用硬件的成本也相对专用硬件低得多。

2. 风险:低廉的前期开发费用让软件方案能够迅速产品化然后得到用户反馈,用户的反馈能很快帮助决策者确定项目是否继续下去,大大降低了资本的风险。

3. 灵活:获得用户反馈后,通常软件方案较专用硬件更容易修改。和灵活相关的,还有更容易定制,更容易提供App。

4. 扩展性:市场对通用硬件的供应几乎是无限制的,而且软件代码可以无成本复制。如果软件 + 通用硬件产品大受欢迎,他们只需要从开放的市场上采购大量通用硬件就行了;但若是采用专门芯片,通常只能从少数厂商定制,从产品订单到交货之间的时间很长,常常超过一年。

5. 可移植性:相对于专用硬件,软件代码更容易得到重(chong)用,嵌入另一个软件解决方案里,代码中的算法也更容易跨平台使用。

有了这么多好处,大多数初创企业,甚至大型企业,都优先采用软件 + 通用硬件的解决方案。实际上,我们在评估风险投资目标或者收购对象的时候,采用专用硬件的公司是要被扣分的。


知乎用户:王剑


我在硅谷从业多年,现在在苹果作软件,从我以往的大小公司的经验,我认为一个企业能做成的东西跟企业文化很有关系,比如谷歌在后台工作上非常出色,而苹果在精工上出类拔萃,但同样的工程师在谷歌做不出苹果的东西,而在苹果也做不出谷歌的东西。我认为归根结底,这是企业文化造成的,而不是能力造成的。


反观东亚,象日本、韩国和台湾,做硬件非常出色,但是写软件却有些一塌糊涂、无所适从的感觉。象我有个朋友在富士呆了四年,居然搞不出一个软件发布,气得他吐血,现在在谷歌如鱼得水,几年过去,已经发布N次了,他总是说:等富士那个东西发布了,别人已经三代产品过去了。而相形之下,大陆的软件业日新月异,不久前我们在硅谷的从业人员对大陆的软件平台相当看不上,但这两年大家都认同国内的不少平台已经开始渐入佳境了。


我认为深层次上,这其实不是个技术问题,而是文化问题。我们中国的文化,长处是有战略眼光,我们崇拜的历史人物也是那种有战略性眼光的人物,象诸葛亮那种观其大略,未出茅庐而三分天下,千百年来每次被中国知识分子提及总是神往,但我们的短处是不喜欢精于细工,在细节上总是略逊一筹,我曾经带过一个国内的团队,我的体会就是如果你让国内的团队做产品,他们的理念就是做到就行,至于你分配下去的步聚,他们往往会忽略,他们总是认为只的目标理念相同,做法不符合步骤问题是不大的,殊不知有些东西工作是工作了,但后期的扩展和维护变得相当昂贵;


反观日本工程师,我也带过实习生,一样写软件,只要我设计好的东西,可以做得面面具道,绝不马虎细节,我说一二三,他肯定会多做几个半步,写出来的东西看着舒服,也极其好用,可是我让他从头去设计一个产品,就会搞得一塌糊涂,而且受日本文化影响深刻的台湾和韩国同样有这个问题,精于细工,却疏于战略。


我总是对国内的团队说:让你们炒个蕃茄炒蛋,我给你们十步,你给我只做了三步,日本人却给我做十二步。他们总是嘿嘿一乐,下次如故。


而电子工程师和软件工程师却正好是两个不同文化的职业,虽然表面上他们很接近,有很多大学甚至把这两个专业放在一起教授,但事实上硬件文化就是要精于细工,而软件文化却是要有战略性眼光的。


其实同样的现象在其它领域也体现得出来,比如高晓松说引擎的制造其实不重在技术,而是工艺。这一句话让我醍醐灌顶,因为我们可以看到世界上做引擎最好的就是日本和德国,而这两个民族恰恰就是在细节上不放过任何蛛丝马迹的民族。但同样制造火箭,需要大规模产业链配合的时候,日本就明显不象中国有优势,毕竟大规模集成是要有战略眼光的。


最有意思的是,这种现象不光体现在工业上,即便是战争环境也是如此,象著名的日本偷袭珍珠港,从执行角度来说,估计也不会有其他国家执行得比日本军队更出色了,但从战略角度来说,不得不说这是一个很屎的计划。纵观日本在二战中与中国的战斗,其实往往都是赢在战术上,输在战略上,李宗仁将军说得很清楚,如果日本人有女真人或者蒙古人的全盘出击的草原民族般的豪情,那时的中国是扛不住的,但日本人偏偏是象酱油一样一点点滴进中国这个大缸里,一边滴一边还在研究自己到底做得对不对,最后战败其实是无可避免的。


有点说远了,不过这是个很有意思的问题,我个人认为这是个文化问题,而不是一个技术问题,是人对技术的态度问题。


其实现在有很多人对软件行业,包括刚刚从CS毕业的同学们,已经不了解了。在90年代中期,学校的知识和行业是连着的,行业知道的东西并不比学校多多少,基础的CS知识就那些,但是经过这近20年的发展,软件行业已经长足地进步了,但是由于高等教育机制和利益关系,并不适合企业中最优秀的人才回流去学校教研,所以学校和行业已经脱节了。


有不少同学认为搞一台电脑就可以写软件了,那其实最多也就是写写客户端,写写scripts。技术是积累的,难度就在于大规模的有效发展和管理。我来举个简单例子,我们所有的人都可以造一堵小墙,就算没学过建筑,只要有板砖和水泥,肯定也可以造得一板一眼的,那我们可以问:造长城有什么稀奇?那不就是一堵大墙么?


不是这样的,学过工程的人都知道,要调动上百万人,在几千公里的山脊上,把材料人员和各种设施送到位去做一样的事情,是很难的,尤其是在物资和人员都缺乏的古代,这种社会调动力是叹为观止的。长城绝对是一个伟大的工程,不管你用任何语言去察人类史上最伟大的工程,长城肯定是在里面的。


再说个简单的事,很多同学面试的时候,喜欢问答算法问题,排序倒背如流,但如果你真的问:怎么排序1Tb的数据,90%的人会完全茫然失措。软件工程和任何其它工程都是一样的,难的不是造一堵小墙、一个小坝、一辆玩具车,那玩意儿让我说就是沃尔玛的收银员都能干。软件工程最难的事是什么呢?就是你有几亿的用户或者无数的数据的时候,任何事都变得很困难了。


现在大家再看看“不算什么”的谷歌在干什么呢?他们最基本的产品是索引了全球网站的数据和照片,全球大概有6-7亿个网站,每个网站一般都有几Gb到几Tb的数据(不包括那些视频网站),你们在谷歌搜索的速度是多少呢?半秒以内。谷歌的工程师分1-9级,1级的工资加股票就会有12万刀左右,2级的大概15万左右,到5级大概是25-30万左右,6级以上有不少是50万以上的年收入。象Facebook去谷歌和其他大公司挖人,经常就直接给100万的干股,而谷歌为了留高级工程师(Sr Staff)也会毫不犹豫地给出几百万干股的counter offer。如果软件真是那么容易,那我只好说谷歌脑子短路了,这硅谷的资本家都脑子短路了。这么多钱,能招到多少沃尔玛的收银员啊,这不打水漂么。


我不想贬低电子工程师,电子工程师做的东西也是很难的,但是只要有有效设备和资源,多数工作确实只要一两个人就做上去了,这就是一个精益求精的领域,不需要太多宏观策略。


电子工程和软件工程的区别是其受到挑战的领域不同,千万不要以为软件就是学了一些操作系统、编译器和数据结构的知识就一马平川了,路还远着呢。



知乎用户:上官人


拿我上一家公司来说,团队有两个大组,一个做后台数据抽取,一个做前端网站,云平台。后台的复杂度远远超过前台,因为面对上百种软件数百个版本进行数据抽取和清洗,每一个都需要良好的设计。而前台,我以前就是做(前)台的,无数现成的组件来供你调用。


可是,薪水,关注度高的,都是前端的工程师。后台的默默无闻。前端一个月一次RELEASE,搞得兴师动众,而后端组迷惑不解,那玩意儿我们不是每周都发布么?一到评选奖励之类,基本都落在前端,后端的基本看不到。


为什么?难道就是因为人们是直观的看到他们所得到的?Sorry, 至少在我看来不是。


我们需要明白,一家公司成立的目的是什么,运营的目的是什么。公司的目的,很简单,就是赚钱。运营的目的,都是为赚钱服务。谁为赚钱提供了最大的助力,谁就最受重视。


所以,一个公司最重要的两大部门,是销售和财务。技术?一群书呆子。


销售是进钱的,财务是看着出钱的。这两头你抓住了,公司基本上是赚钱的。我工作过的,两家中型的,半成熟的公司,都是通过大量的销售人员,疯狂的销售模式,实现了疯狂的利润。


而他们的产品,用技术的观点来说,也就是一般般。很多功能做得很烂,性能就更别提了。


而销售部门最重视的,是客户的体验,这直接影响了客户满意度。客户满意度,那就是销售业绩。所以其次重要的,是市场和TECH I,TECH II.这帮人是次面向客户的。这帮人将能够收集客户的需求信息以及反馈信息,并设计业务。


而这些业务,被直观的展现给客户的,就是前端组的工作了。这就是同样在技术部,前端和后端的差距所在。说到底,是由于销售部门的需求,决定了技术部门的排序。


所以,我们最重视的,有时候并不是客户的抱怨,而是销售的抱怨。如果销售抱怨因为某个功能的设计过于傻逼我们无法卖出产品,那比现有客户通过TECH I抱怨,优先级可高多了。



你认可他们的看法吗?你是电子工程师还是软件工程师?


-END-


猜你喜欢

看完这篇文章,还不会做平衡小车,你来打我。

做技术的,聊聊研发。

做硬件,到底有没有前途?

 最 后  
 

若觉得文章不错,转发分享,也是我们继续更新的动力。
5T资源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,PCB、FPGA、DSP、labview、单片机、等等
在公众号内回复「更多资源」,即可免费获取,期待你的关注~
长按识别图中二维码关注

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存